Processing Encoded Real-Time Data

ABSTRACT

Processing packets of encoded real-time data to perform a gradual fade-out and fade-in of a signal, for example upon detecting a packet loss period. Upon detecting the packet loss period, a last correctly received packet is repeated with gradually increased attenuation, to solely fade out for example an audible output but similarly, after the end of a packet loss period the reappearing can be slowly faded in by attenuating the first or a number of first data packets after the packet loss period. The attenuation operation can be performed at low complexity by decrementing segment numbers of samples of data packets such as in a lookup operation.

FIELD OF THE INVENTION

The present invention relates to processing packets of encoded real-timedata.

BACKGROUND OF THE INVENTION

Telephone networks are well suited for supporting real timecommunication by establishing a dedicated communication link between acalling party and a called party. Information such as voice informationis transmitted via the dedicated communication link between thecommunicating parties. As opposed thereto computer networks often do notestablish a dedicated communication link between communicating devicesbut rather transmit data packets containing payload information betweenthe communicating devices through the network. Such type of packettransmission was not originally designed to handle real timecommunications, as packets may have varying transmission delays.Packet-switched networks were rather designed to exchange data betweencomputing devices with a data exchange not under real-time requirements.

In a packets switched network the individual data packets indicate thedesired recipient and are transmitted via the communication networkalong the same path or via different paths. At the receiving party thedata packets are collected and the communicated information isextracted. In order to be able to properly assemble the originalinformation content, the individual data packets are numberedsequentially so that the receiving party is able to arrange the receiveddata packets into the proper sequence for further processing. Awell-known example of a packet-switched communication network is theInternet.

However, with the merging of telecommunication networks required tosupport real time communications and computer networks, the real-timerequirement also applies to the transmission of data through thepacket-switched communication network.

A variety of protocols exists for supporting real-time data transfer inpacket-switched networks, one of which is RTP (Real-time TransferProtocol) to transmit real-time data in packets in IP networks. RTPsplits a stream of real-time data such as video or audio streams intosmall frames and appends a sequence number and a time stamp to eachframe. The frames are then transmitted in the packet-switched network.

When the packets are received it is possible to recreate the originalstream by using the time stamp and the sequence number of the individualreceived packets. RFC 3550 “RTP: A Transport Protocol for Real-TimeApplications” and RFC 3551 “RTP Profile for Audio and Video Conferenceswith Minimal Control” by the Internet Engineering Task Force (IETF)describe different payload formats for use in the RTP protocol. Thesepayload formats are called the μ*law and the A-law encoding, with μ-lawknown as PCMU with payload type number 0 and A-law known as PCMA withpayload type number 8.

In real-time packet transmission applications problems occur if packetsare corrupted or lost on their way from the transmitting entity to thereceiving entity. In this case, the receiving entity cannot simply waitfor a re-transmission of a lost or corrupted data packet, and dropoutsof the transmitted signal occur. To cover up for lost packets, thereceiver applies techniques known as packet loss concealment, e.g. inthe transmission of video or audio streams. Examples of packet lossconcealment algorithms are described in ITU-T Recommendation G.711Appendix (09/99) A high quality low-complexity algorithm for packet lossconcealment with G.711.

However, the above algorithms for packet loss concealment are veryperformance demanding and typically require a hardware design with adedicated digital signal processor which is handling error concealmenttasks.

In environments lacking a dedicated processor or high performanceprocessor, error concealment algorithms therefore cannot be applied, inwhich case the audible effects of packet loss, such as abrupt silence orrepetition of a lost packet may be quite annoying for the communicatingparties.

SUMMARY OF THE INVENTION

It is therefore desirable to provide for an efficient processing ofpackets of real-time data for packet loss concealment.

This object of the invention is solved by a processing device forprocessing packets of encoded real-time data, including receiving meansfor receiving a sequence of packets of encoded real time signal samplesfrom a sending entity, each sample having a segment number and a datavalue, the segment number specifying one of a plurality of adjacentsub-ranges of a range of possible signal values, and the data valueindicating an element in the sub-range specified by the segment number;and attenuating means for attenuating the samples of a packet bydecrementing the segment number of each sample of the packet by the samedecrement value to specify a lower sub-range corresponding to lowerpossible signal values. Accordingly, real-time signals such as audiosignal can be attenuated by modifying the segment numbers to specifylower possible signal values, thus reducing computing requirements forthe attenuation operation. Decrementing the segment number is alow-complexity operation that can be handled by dedicated hardware orgeneral purpose processing elements. For example, in case a data packetof the encoded real-time data is received improperly, partiallycorrupted or contains undesired content, the real-time data payload canbe attenuated to lessen undesired audible effects.

According to an advantageous embodiment, reception means are providedfor detecting a packet loss period, the packet loss period correspondingto at least one lost or improperly received packet, and for introducinginto the sequence of packets a sequence of at least one repetition copyof the last correctly received packet, if a packet loss period isdetected; and wherein the packet attenuated by the fade means is arepetition copy. Accordingly, upon detecting a packet loss period, alast correctly received packet can be attenuated and repeated in thepacket loss period to reduce audible effects of the packet loss period.

The attenuation means may be arranged to progressively decrement thesegment numbers for the sequence of repetition copies of the lastcorrectly received packet by increasing decrement values. Accordingly, asequence of attenuation copies can be gradually attenuated to graduallyfade out the audible signal.

If the segment number corresponds to a lowest sub-range, a correspondingdata value can be replaced by zero. Accordingly, after reaching a lowestpossible segment number, a corresponding sample can be replaced bysilence.

According to another embodiment the sample segment numbers of at leastone of the repetition copies is decremented by the same decrement value,thus enabling adjusting the fadeout period after a packet loss isdetected. A selectable number of repetition copies can be attenuated bythe same factor, leading to a shorter or longer fadeout period.

According to another embodiment, the number of repetition copiesdecremented by the same decrement value depends on the real-timeduration of the payload data of a packet, thus enabling adjusting thefadeout period based on the payload data duration.

According to another embodiment, the first repetition copy is notattenuated, i.e., simply repeated.

According to another embodiment, the receiving means is further adaptedto detect a first packet after a packet loss period; and the packetattenuated by the attenuating means is the first packet after the packetloss period. Accordingly, after a packet loss period, a first correctlyreceived packet may be attenuated in order to reduce the audible impactof an abrupt and of a packet loss period.

According to another embodiment, the attenuating means is arranged todecrement the segment numbers of the samples of packets subsequent tothe first packet after the packet loss period by a smaller decrementvalue compared to the first packet. Accordingly, a fade-in period may bedefined, slowly fading in the signal after a packet loss period.

According to another embodiment, lookup means are provided for holding alookup table of all possible sample values for each attenuationdecrement value; and for performing the attenuation of the PCM samplesby looking up a sample value at a position corresponding to an originalsample value in a lookup table corresponding to a desired attenuationdecrement value. Accordingly, as the lookup tables can be preparedbeforehand, an actual attenuation operation only is constituted by alookup operation of a corresponding sample value decremented by acertain decrement value, further reducing computational complexity.

According to another embodiment, a method is provided for processingpackets of encoded real-time data, including receiving a sequence ofpackets of encoded real-time signal samples from a sending entity, eachsample having a segment number and a data value, the segment number of asample specifying one of a plurality of adjacent sub-ranges of a rangeof possible signal values, and a data value indicating an element in thesub-range specified by the segment number; and attenuating the samplesof a packet by decrementing the segment number of each sample of thepacket by the same decrement value to specify a lower sub-rangecorresponding to lower possible signal values.

According to another embodiment, a program is provided havinginstructions to carry out the method.

A computer-readable medium may be provided in which a program isembodied, wherein the program is to make a computing device to executethe method.

A computer program product may be provided comprising thecomputer-readable medium.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates elements of a processing device for processing packetof encoded real-time data according to an embodiment of the invention;

FIG. 2 illustrates operations of a method for processing packets ofencoded real-time data according to an embodiment of the invention;

FIG. 3 illustrates operations of a method for processing packets ofencoded real-time data, particularly illustrating operations to processsamples of a single packet;

FIG. 4 illustrates elements of a processing device for processingpackets of encoded real-time data, particularly illustrating fade meansto attenuate copies of packets during a packet loss period;

FIG. 5 illustrates operations of a method for processing packets ofencoded real-time data according to an embodiment of the invention,particularly illustrating detecting a packet loss period and introducingattenuated repetition copies of a last correctly received packet;

FIG. 6 illustrates operations of a method for processing packets ofencoded real-time data according to another embodiment of the invention,particularly illustrating operations to attenuate samples of packets;

FIG. 7 illustrates operations of a method for processing packets ofreal-time encoded data according to another embodiment of the invention,particularly illustrating operations to fade in a signal after a packetloss period; and

FIG. 8 illustrates operations of a method for processing packets ofreal-time encoded data according to another embodiment of the invention,particularly illustrating attenuating a sequence of packets after apacket loss period by progressively reduced decrement values to fade inthe signal.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates elements of a processing device for processingpackets of encoded real-time data according to an embodiment of theinvention.

FIG. 1 shows a processing device 100 for processing a stream of encodedreal-time data packets in a real-time application such as a voice orvideo stream over a communication network. The processing devicecomprises receiving means 110 for receiving a sequence of the packets ofencoded real-time signal samples from a sending entity. Each sample ofeach packet has a segment number and a data value, wherein the segmentnumber specifies one of a plurality of adjacent sub-ranges of a range ofpossible signal values. For example, the original signal such as anaudio signal has a certain range of possible signal values with certainassociated amplitude. This range of possible signal values is subdividedinto a number of sub-ranges. The data value indicates an element in thesub-range specified by the segment number, i.e., the data valuespecifies a value of the original signal within the sub-range defined bythe segment number. The sub-ranges thus defined may cover equal sizeportions of the range of signal values of the original signal such as anaudio signal, or may cover segments of varying sizes. For example, thesub-ranges may be sized according to a logarithmic scale, with thesub-ranges corresponding to the smallest signal values having thesmallest sizes, and the sub-ranges of increasing signal values havingincreased sizes. Sub-ranges arranged according to a logarithmic scalecorrespond to human hearing.

As the original signal such as an audio signal may have positive andnegative signal amplitude, the logarithmic scale for sizing thesub-ranges is applied starting from the value 0 in positive and negativeamplitude direction.

One example of a technique for coding an original signal into sampleshaving segment numbers and data values is PCM (Pulse Code Modulation).More precisely, a PCM encoded data signal provides samples having 8bits, the first bit being a sign bit, the second to fourth bitconstituting the segment number, and the fourth to eighth bitconstituting the data value. PCM provides two different techniques tocode a signal, the μ-law and the A-law techniques, differing from oneanother in the way the segment numbers are consecutively numbered. Theμ-law encoding provides the lowest segment number as 111, i.e., countingup the segment numbers corresponds to decrementing the binary value 111.The A-law encoding provides the lowest segment number as 101, accordingto the A-law encoding even bits have been inverted and thus the firstbit of the sample (the sign value) is inverted, the second bit of thesegment number is inverted, etc.

PCM is applied in the RTP (Real-time Transport Protocol) to transmitpayloads of real-time encoded data via a packet-switched network. PCMand RTP are well-known in the art. While the invention may beadvantageously implemented to handle PCM encoded RTP payloads, it isexplicitly noted that the invention may be applied to any other protocolusing the above outlined concept of segment numbers and data values.

Further to the receiving means 110 the processing device 100 comprisesattenuating means 111 for attenuating the samples of a packet of thestream of real-time encoded packets by decrementing the respectivesegment numbers of each sample of the packet by the same decrement valueto specify a lower sub-range corresponding to lower possible signalvalues. Accordingly, the processing device receives a stream of datapackets, such as PCM encoded RTP payload packets, and attenuates atleast one of the packets by decrementing the segment numbers of thesamples of this packet. The attenuation operation decrements the segmentnumbers, and thus avoids a complex recalculation, e.g. of the individualdata values. Specifying a lower sub-range corresponding to lowerpossible signal values will, for positive signal values, involvespecifying a sub-range corresponding to values of the original signalcloser to zero as compared to the original sub-range. Correspondingly,specifying a lower sub-range corresponding to lower possible signalvalues for negative original signal values corresponds to specifying asub-range corresponding to signal values of the original signal closerto zero from the negative direction as compared to the originalsub-range.

Decrementing the segment number to specify such lower sub-range definesan operation to modify the segment number to specify such lower segmentvalue. The actual operations to be carried out to perform thedecrementing of the segment numbers by the decrement value thereforedepends on the particular coding scheme used, such as PCM μ-law andA-law and the particular bit combinations assigned to the respectivesub-ranges.

As noted above, each sample of the data packet to be attenuated isprocessed by decrementing the segment number or modifying the segmentnumber to specify a lower sub-range corresponding to lower possiblesignal values. According to the PCM μ-law and A-law coding the segmentnumbers comprise 3 bit values, and accordingly a number of 8 differentsegment numbers can be specified. With different segment numbers 8different sub-ranges can be defined and in the attenuation operation noweach original sub-range of a sample is replaced by a sub-range, being acertain step size or “decrement value” lower than the originalsub-range. If the decrement value is one, it specifies the respectivenext lower sub-range, calculated from the original segment number of asample. The decrement value may also be 2, 3, 4, to specify other lowersub-ranges, i.e. second lower, third lower, fourth lower sub-range.Obviously the segment number cannot be set lower than the lowestdecrement number and thus, if a decrementing operation would lead to asegment number lower than the lowest segment number, the lowest segmentnumber may be selected or the respective sample may be replaced byvalues corresponding to 0.

The above embodiment may be used in a system for receiving audio datapackets between two communicating parties, such as a telephonecommunication network. As noted earlier, each packet is provided with asequence number and a time stamp, enabling the receiving party toassemble any received packets in an order corresponding to the originalsequence. However, particularly in case the communication involveswireless transmissions, some of the data packets may at least becorrupted and payload data may not be fully recoverable. Accordingly, inorder to reduce any detrimental audible effects of the degeneratedsignal, a correspondingly impaired packet is attenuated as outlinedabove, i.e., all individual segment numbers of the packet all reduced tospecify correspondingly lower sub-ranges as compared to the originalsegment numbers.

Therefore, if transmission problems occur or for any other reason theoutput signal should be attenuated, one or a plurality of packets can bee.g. progressively attenuated to slowly fade out the signal orafterwards to slowly fade in the signal after the reduction period isover. As the fading or attenuating of the signal can be performed bysimply decrementing the segment numbers of the respective packets to befaded out or faded in, computational complexity of fading operations arelow and processing capacity can be saved.

Accordingly, the processing device may be constituted by a generalpurpose processing device such as commonly used in telephone or videoapplications. Nevertheless it is also possible that the processingdevice 100 is a dedicated processing device, specialized for handlingthe above outlined operations of attenuating signal values bydecrementing segment numbers.

The processing device may form part of a communication device, such as amobile telephone or wire-line telephone, for receiving a stream ofencoded real-time packets from a sending entity via a packet-switchedcommunication network. In this case the processing device forwards thestream of packets, after attenuating at least one of the packets, tofurther processing elements for reproduction to a user.

Alternatively the processing device 100 forms part of a communicationnetwork, such as at a network node, and a stream of packets is receivedfrom a sending entity and forwarded to a receiving entity via thecommunication network. For example the network node is positioned at atransition point between a packet switched transmission and acommunication network with dedicated communication links.

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 2. FIG. 2 illustrates operations of amethod for processing encoded real-time data packets, e.g. with thehardware structure of FIG. 1.

In a first operation 201 a processing device receives a sequence ofpackets of encoded real-time signal samples from a sending entity, eachsample having a segment number and a data value, as outlined before.Prior to receiving or after the receiving operation 201, any requiredpre-processing operations can be carried out to obtain a signal usefulfor further processing as required.

In an operation 202 the samples of a packet of the stream of packets areattenuated by decrementing the segment numbers of each sample of thepacket by the same decrement value to specify a lower sub-range ofsignal values corresponding to lower possible signal values of theoriginal signal. As all segment numbers are decremented by the samedecrement value, instead of the original sub-range, correspondinglylower sub-ranges are indicated and a correspondingly lower signal outputis generated, leading to an attenuation or fading of a correspondingpacket.

The attenuation of operation 202 can be performed for packets, which door are expected to contain an information content, which should beattenuated, e.g. if the packet is partially corrupted via transmissionor if it is expected that the packet contains fade out information whichneeds to be attenuated, such as background noise or similar.Accordingly, the processing device or a cooperation device may beprovided for monitoring the incoming packets or information associatedwith the incoming packets indicating the requirement for attenuation.Upon detecting such requirement for attenuation in association with aparticular packet, the processing device could then be instructed toperform the above outlined operation 202, e.g. by means of theattenuating means 111.

Thereafter, in an operation 203 the sequence of packets includingpackets with the attenuated samples is forwarded to a receiving entity,such as a user of a telephone device, or a further entity of a network.

In the following, an illustrating example for attenuating a packet ofPCM encoded RTP packets is described. As noted earlier, for attenuatinga packet with payload information corresponding for example to 20 ms ofreal-time coded audio information, each sample of the packet is obtainedand the segment number is decremented by a certain decrement value tolower possible signal values, thus providing an attenuated version ofthe original packet.

Moreover, as noted earlier, each PCM sample consists of 8 bits, thefirst bit being the sign bit, the 2nd to 4th bit the segment number andthe 4th to 8th bit the data value. Accordingly, each sample can take oneof 256 possible bit combinations that can for example be represented inhexadecimal notation.

The present example provides for lookup tables of all possible samplevalues for each attenuation decrement value; enabling to perform theattenuation or decrementing of the segment numbers of the samples by alookup operation, i.e. by looking up a sample value at a lookup tableposition corresponding to an original sample value in a lookup tablecorresponding to a desired attenuation decrement value.

To further explain the lookup procedure an example of all 256 possiblevalues of an input data sample of the incoming data stream inhexadecimal notation is shown in Table 1:

TABLE 1 Input byte value 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 2728 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 5758 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 8788 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9fa0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cfd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff

The PCM RTP coding scheme provides for two different coding techniques,μ-law and A-law, differing in the way in which bits of the segmentnumbers are associated with sub-ranges of the range of possible signalvalues.

As for each of the coding schemes, μ-law and A-law, 8 different segmentnumbers are possible, and a corresponding number of 8 attenuation levelscorresponding to 8 different decrement values, it becomes possible toprepare a lookup table for obtaining samples with decremented segmentnumbers.

More precisely, for each decrement value or attenuation level a lookuptable can be prepared for all possible samples. For example, a lookuptable for the μ-law coding scheme for a step size or decrement value of1 or a first attenuation level can be created, as shown in table 2below.

TABLE 2 Output μ-law value - fading segment by one 10 11 12 13 14 15 1617 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 4647 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 7677 78 79 7a 7b 7c 7d 7e 7f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd bebf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed eeef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff ff ff ff ff ff ff ffff ff ff ff ff ff ff ff ff

Each possible sample value in Table 2 at a position corresponding to anoriginal sample value in Table 1 is now a value obtained by decrementingthe segment number of the original sample by 1 and writing the result inhexadecimal notation. As segment numbers below the lowest segment numberare not possible, instead hexadecimal ff is included in line 8 and line16, one for positive sign and negative sign, indicating that thecorresponding values correspond to 0.

Accordingly, decrementing a segment number of an original sample 00according to the μ-law scheme corresponds to a lookup operation in Table2 of the hexadecimal value at the same position in the table, leading tothe hexadecimal value 10. Similarly, in original sample value 70decremented by one step leads to a lookup operation in Table 2 at thesame position, leading to a new sample value ff. Accordingly, if lookuptables are prepared for all possible decrement values or attenuationlevels, all possible attenuation operations with all possible segmentnumber decrements can be performed by way of lookups.

Corresponding to Table 2, Table 3 shows a lookup table of all possiblesample values according to the A-law scheme and a decrement value 1,i.e., with each segment number reduced by 1 to indicate the next lowersub-range of possible signal values. Accordingly, implementing i-law andA-law coding schemes requires storage of 16 lookup tables of each 256entries, so that the attenuating operations can be executed fully bylookup operations.

TABLE 3 Output A-law value - fading segment by one 10 11 12 13 14 15 1617 18 19 1a 1b 1c 1d 1e 1f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e6f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 00 01 02 03 04 05 0607 08 09 Oa Ob Oc Od Oe Of 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e5f 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 70 71 72 73 74 75 7677 78 79 7a 7b 7c 7d 7e 7f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e4f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f e0 e1 e2 e3 e4 e5 e6e7 e8 e9 ea eb ec ed ee ef b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd bebf 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f d0 d1 d2 d3 d4 d5 d6d7 d8 d9 da db dc dd de df 55 55 55 55 55 55 55 55 55 55 55 55 55 55 5555 f0 f1 f2 f3 f4 f5 f65 f7 f8 f9 fa fb fc fd fe ff c0 c1 c2 c3 c4 c5 c6c7 c8 c9 ca cb cd cd ce cf

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 3. FIG. 3 illustrates operations of amethod for processing packets of encoded real-time data, particularlyoutlining operations for decrementing segment numbers of the samples ofa packet.

As outlined before, the samples of a packet of a stream of real-timeencoded data packets are attenuated to obtain a correspondinglydecreased output, such as an audio output with reduced power at aspeaker of a telephone. The scheme for attenuating the samples of apacket can be applied to a single packet or a sequence of packets forfading out a signal or for fading in the signal. The decrement value forthe individual packets may be the same or gradually varied in order toobtain a smooth fade-out or fade-in of the signal.

In an operation 301 a packet to be attenuated is obtained. For example,this packet may associated with corresponding information that thecorresponding signal values need to be attenuated, or in apre-processing step it may be determined that the packet containsundesired information, such as a corrupted, partially corrupted signalinformation or noise.

In an operation 302 the first sample of the obtained packet is read. Thefirst sample may for example be the first sample of the obtained packetdetermined by a position of the sample in an array or matrix of samplesof the packet or defined by any other scheme. It is noted that it is notimportant to start the operations at a specific first sample, any sampleof the packet may be defined as the starting sample, it only is requiredto address all samples of the packet by decrementing the respectivesegment number. Reading the sample for example includes reading acorresponding sample value from a memory or buffer input terminal, asknown in the art. Determining the segment number includes extracting thebits of the sample or the portion of the sample defining the segmentnumber.

In an operation 303 it is determined whether the segment numberrepresents the lowest possible value, i.e. represents the segment numbercorresponding to the sub-range corresponding to the lowest signal valuesof the original encoded signal.

If in operation 303 the decision is “no”, indicating that the segmentnumber does not correspond to the lowest possible segment number, in anoperation 304 the segment number is decremented by a predetermineddecrement value. As noted earlier, the decrementing operation includesreplacing the original segment number of a sample by a segment number ofa sub-range a certain decrement value or step size lower than thesub-range specified by the original segment number. Thus the actualoperations to be carried out for the decrementing operations depend onthe numbering scheme used for designating the individual sub-ranges.

Thereafter, in operation 306 it is determined whether the last sample ofthe packet has been addressed, if in operation 306 the decision is “no”,the flow of operations returns to operation 302, and the next sample ofthe obtained packet is read.

If in operation 303 the decision was “yes”, indicating that the segmentnumber already indicated the lowest possible value, in a operation 305the segment number may be maintained at the lowest possible value.Additionally the corresponding data value may be replaced by zero or theentire sample is replaced by zero.

If in operation 306 the decision is “yes”, indicating that the lastsample of the packet has been addressed, the flow of operationscontinues, such as by obtaining a next packet, if another packet needsto be attenuated, or operations may be put on hold, if subsequentpackets of a stream of packets are to be transmitted withoutattenuation.

It is noted that the decrement value for a packet is fixed, i.e., foreach sample of the packet, the same decrement value is applied. Forexample, in the μ- or A-law PCM coding schemes with 3-bit segmentnumbers, the decrementing operation may correspond to selecting asegment number corresponding to the next lower sub-range of the range oforiginal signal values, for each sample of the packet. Alternatively anyother decrement value can be selected, such as a segment numbercorresponding to the second lower sub-range, third lower sub-range, etc.

As noted before, a sequence of packets may be attenuated by increasingor decreasing decrement values, each packet being attenuated by a largerdecrement value. With a 3-bit segment number and corresponding Bsub-ranges to be defined by the segment numbers, a segment to beattenuated by replacing each segment number by a segment numbercorresponding to an 8th lower sub-range, the entire packet can be set to0, as all segment numbers will then be decremented more than the maximumvalue. In a practical example, if the decrementing operation for a firstpacket involves replacing each segment number by a segment numberspecifying a one step lower sub-range, after 8 packets a 0 signal can betransmitted, as this signal is completely faded out.

It is noted that in an alternative the operations 303-305 can be handledby way of lookup operations as described earlier.

In the following a further embodiment of the invention will be describedwith regard to FIG. 4. FIG. 4 illustrates elements of a processingdevice for processing packets of real-time encoded signals, particularlyillustrating elements for packet loss concealment.

FIG. 4 illustrates a processing device 111 substantially correspondingto the processing device shown in FIG. 1, further comprising repeatingmeans 112 for repeating data packets during a packet loss period. Moreprecisely, the repetition means 112 is arranged to detect a packet lossperiod corresponding to at least one lost or improperly received packet,and the repetition means is provided for introducing into the sequenceof received packets a sequence of at least one repetition copy of thelast correctly received packet, in case of a packet loss detection.Thus, in order to reduce the audible effects of a packet loss period,upon the beginning of a packet loss period repetition copies of the lastcorrectly received data packet are introduced into the sequence ofpackets and progressively attenuated by the attenuating means 111.

The repeating means is arranged to repeat the last correctly receiveddata packet once or a predetermined number of times. For example, therepeating means could repeat the last correctly received packets untilthe end of a packet loss period, each subsequent repetition copyprogressively attenuated. Correspondingly, the attenuating means isarranged to decrement the segment numbers of the sequence of repetitioncopies by increasing decrement values per repetition copy, toprogressively attenuate each repetition copy of the sequence ofrepetition copies.

According to an example a first repetition copy of the last correctlyreceived packet is attenuated by replacing the segment numbers of thepacket samples by the next lower segment number by a decrement value oneto specify a next lower sub-range of possible signal values. A secondrepetition copy of the last correctly received packet is attenuated byincreasing the decrement value to two so as to specify a second lowersub-range for each sample as compared to the original sub-range. Thisscheme is continued by increasing the decrement value to three tospecify a third lower sub-range for each sample of the next repetitioncopy, etc., until a maximum decrement value is reached. The maximumdecrement value corresponds to a value leading to a replacement of thesegment number corresponding to the highest sub-range to a segmentnumber corresponding to the lowest sub-range. In the example of a 3-bitsegment number 8 decrement values can be specified and correspondinglythe maximum decrement value is 8 steps, in which case the highestsamples of a packet would reach the lowest possible segment number.

After attenuating a packet by the maximum decrement value, all segmentnumbers reached the lowest possible value or all samples of the packetare set to zero. Accordingly a further repetition copy need not beprocessed, instead the last repetition copy could be repeated or packetsrepresenting zero can be forwarded representing a silence period.

If a segment number corresponds to a lowest sub-range, the nextdecrementing operation may correspond to replacing the data value by 0.

In the following, an illustrating example is described on the basis ofan assumed packet loss period of 10 packets. Moreover, in this exampleit is assumed that a 3-bit segment number is provided such as in PCM RTPtransmission, leading to 8 possible values for the segment numbers orsub-ranges for the signal values. Moreover, it is assumed that one bitof the sample specifies a sign value, to define positive and negativesignal values.

For packet loss concealment at the beginning of the assumed packet lossperiod a first repetition copy of the last correctly received packet isforwarded for further processing. This first repetition copy isattenuated by a step size or decrement value one, corresponding toreplacing all segment numbers of the respective samples of the packet bya segment number specifying the correspondingly next lower sub-range.Then a second repetition is forwarded, being attenuated by a decrementvalue of two, i.e., the segment numbers of these packets are replaced tospecify the corresponding second lower sub-range. Following thisprocedure, the third repetition copy will be forwarded and attenuated bya decrement value of three, etc., and the 7th repetition copy isattenuated by a step size or decrement value of seven. Thereafter, asall segment numbers have now surely reached the lowest value, silencecan be transmitted.

In an alternative example, the first repetition copy is not attenuated,i.e., the first repetition copy is transmitted without any attenuation,and only the second, third, etc. repetition copy is attenuated toimprove the audible effect of the packet loss concealment.

According to still another alternative every two repetition copies maybe attenuated by using the same decrement value, i.e. only after tworepetition copies the attenuation level is increased. This procedureallows to achieve a longer fade-out period. More precisely, in thisalternative the first two repetition copies of the last correctlyreceived frame are be attenuated by one step, i.e. decrement value 1,the 3rd and 4th repetition copy are be attenuated by two steps, etc.,and the 13th and 14th copy of the last correctly received frame are beattenuated by 7 steps. Thus, in order to adjust the length of thefade-out period, one or more than one repetition copies can beattenuated by the same decrement value.

Still further, the number of repetition copies to be decremented by thesame decrement value may be made dependent on a real-time duration ofthe payload data of the packets of the stream of packets. In oneexample, each data packet may specify a duration of 20 ms of an originalsignal, while according to another example a payload data may specify 40ms of the original signal. If in both cases the same attenuation scheme,e.g. one frame per attenuation level or two frames per attenuationlevel, etc. is applied, different fade-out durations will occur. Inorder to conform the fade-out period to different payload sizes, thenumber of repetition copies attenuated by the same attenuation step ordecrement value is therefore made dependent on the payload duration.Generally, to obtain corresponding fade-out periods, in the case of 20ms payload and 40 ms payload data, the number of packets attenuated bythe same attenuation step for 20 ms payloads needs to be twice thenumber of repetition copies attenuated by the same attenuation step inthe case of 40 ms payload duration.

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 5. FIG. 5 illustrates operations forprocessing packets of encoded real-time data, particularly illustratingoperations to fade out the signal upon detecting a packet loss period.

As noted earlier, packet-switched communication networks transmit thepackets individually, and based on a time stamp and sequence number theoriginal sequence is established at the receiving entity. If due totransmission problems individual packets are lost or corrupted, thecorresponding payload information is also lost, and a dropout in thereproduced signal spanning the payload duration of the missing packetsoccurs. For example, if five packets of 20 ms payload each are lost, apacket loss period of 100 ms occurs. One way to handle such packet lossperiod would be to simply pause the signal, i.e. to transmit silenceduring the 100 ms packet loss period, however, this will create someundesired effect at the receiver, as short periods of silence create anannoying perception for a human listener.

According to the instant embodiment, if such packet loss period isdetected, the packet loss is concealed by repeating an attenuatedversion of the last correctly received packet. In a first operation 501the sequence of packets of encoded real-time signal samples from thesending entity is received, such as from a party in a telephoneconversation. Each sample has a segment number and a data value, asoutlined with regard to previous embodiments, the segment numberspecifying one of a plurality of sub-ranges of possible signal values ofthe original signal and the data value specifying a correspondingelement within the indicated sub-range. Accordingly the segment numberand data value together specify a signal value of the original signal.

In an operation 502 a detection of a packet loss period is determined,the packet loss period corresponding to at least one lost or improperlyreceived packet. For example, receiving means can be provided formonitoring the incoming stream of packets and generating a notificationupon detecting missing or improperly received data packets, as known inthe art. Depending on the application, packet loss periods may range upto several 10 packets, each packet for example specifying a 20 ms or 40ms payload.

In case in operation 503 a packet loss period is confirmed, i.e., whenthe decision in operation 503 is “yes”, in an operation 504 a sequenceof at least one repetition copy of the last correctly received packet isintroduced into the sequence of packets, instead of at least some of themissing packet of the packet loss period.

Moreover, in an operation 505 the samples of at least one of therepetition packets are attenuated to forward an attenuated or fadedversion of the repetition copy as packet loss concealment. The samplesof the repetition packets are attenuated by decrementing the segmentnumber of each sample of the packet by the same decrement value tospecify a lower sub-range corresponding to lower possible signal values,as outlined with regard to previous embodiments.

According to an example, a sequence of repetition copies of the lastcorrectly received packet is transmitted during the packet loss period,each of the repetition copies attenuated by a gradually increasingamount, i.e., by specifying progressively reduced segment numberscorresponding to lower sub-ranges as compared to the original segmentnumbers, to slowly fade out the signal. After a maximum number ofpossible attenuation steps, silence can be transmitted.

In an operation 506 the sequence of packets including the repetitioncopy with the attenuated samples is forwarded for further processing,such as for reproduction at a telephone, or to another network entity.

If in operation 503 the decision is “no”, indicating that a packet losswas not detected, the flow returns to operation 501 and operationscontinue.

The embodiment described with regard to FIG. 5 enables efficient packetloss concealment by reproducing attenuated repetition copies of the lastcorrectly received data packet to gradually fade out the signal, toreduce the audible effect of a packet loss period.

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 6. FIG. 6 illustrates operations forprocessing packets of encoded real-time data, particularly outliningoperations to progressively attenuate a sequence of repetition copies ofthe last correctly received packet.

In a first operation 601 a packet loss period is determined. If inoperation 601 the decision is “yes”, in an operation 602 the attenuationdecrement value is initialised to 0. It is noted that initialising thedecrement value to 0 corresponds to initialising the decrement value toa defined initial value that may be “no decrement” or any “initialdecrement”.

In operation 603 the first repetition copy of the last correctlyreceived packet is attenuated by the decrement value, as outlined withregard to previous embodiments. Briefly, as outlined before, each sampleof the corresponding packet is read and the segment numbers aredecremented by the decrement value or, if the segment number alreadycorresponds to a lowest possible sub-range, the segment number may bemaintained and/or the corresponding data value is replaced by 0 or theentire sample.

Thereafter, in operation 604 the decrement value is incremented by 1.Incrementing by 1 corresponds to increasing the decrement value andcorresponds to setting a certain attenuation step size or level, wherebythe increase value 1 stands for a selected unit step size, which may notnecessarily correspond to the number 1.

In an operation 605 it is detected whether the decrement value exceeds amaximum decrement value. The maximum decrement value depends on thenumber of possible segment numbers, in the case of PCM A-law and μ-lawcoding, 8 segment numbers are available and correspondingly the maximumdecrement value is 8. However, it is noted that other coding schemes mayprovide for a larger number of segment numbers, in which case themaximum decrement value would correspond to the respective highernumber. If in operation 605 the decision is “yes”, indicating that thedecrement value exceeds the maximum decrement value, it is known thatall samples of a corresponding repetition copy will be necessarily havereached the lowest possible value, and instead of continuingtransmitting repetition copies in an operation 606, silence isgenerated. Thereafter, or in case the decision in operation 605 was“no”, indicating that the decrement value is not larger than the maximumdecrement value, in an operation 607 it is determined whether the packetloss period is over. If the decision is “no”, the flow of operationsreturns to operation 603, and the decrement value is further increasedto process the next repetition copy transmitted during the packet lossperiod with the next attenuation step in operations 604-606.

If in operation 607 the decision is “yes”, indicating that the packetloss period is over, normal transmission resumes and the flow continueswith operation 601.

FIG. 6 illustrates an embodiment to slowly fade out a sequence ofpackets having a packet loss period by transmitting a sequence ofrepetition copies during the packet loss period, the repetition copiesbeing attenuated by gradually increased values, until the signal iscompletely faded out.

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 7. FIG. 7 illustrates operations forprocessing packets of encoded real-time data, particularly illustratingoperations for fading in a signal after the end of a packet loss period.

As described earlier, a signal dropout during a packet loss period canbe concealed by transmitting repetition copies of the last correctlyreceived packet, each of the repetition copies attenuated by using agradually increased decrement value until the signal is completely fadedout. Accordingly, the signal slowly fades out and annoying audibleeffects can be reduced. Similarly, if after a packet loss period thesignal abruptly reappears, an undesired audible effect is created, andit is desirable to slowly fade in the signal after a packet loss period.Generally, the same technique as used for fading out the signal can beused for fading in the signal after the packet loss period, byattenuating the first packets of the reappearing stream of packets byslowly decreased attenuation values.

In a first operation 701 a sequence of packets of encoded real-timesignal samples is received from a sending entity, each sample having asecond number and a data value, as outlined with regard to previousembodiments.

In an operation 702 a packet loss period is detected, e.g. by monitoringthe sequence numbers and time stamps of the packets.

In an operation 703 it is determined whether a packet loss periodoccurred. If the decision is “no”, indicating that no packet lossoccurred, the flow returns to operation 701, and normal receivingoperations and processing/forwarding operations are carried out, asoutlined before.

If in operation 703 the decision is “yes”, indicating that a packet lossperiod occurred, in an operation 704 a first packet after end of thepacket loss period is detected, i.e., the first packet of the stream ofpackets again correctly received is determined.

In an operation 705 the samples of this first packet are attenuated bydecrementing the segment number of each sample of the packet by the samedecrement value. The attenuation operation is as outlined with regard toprevious embodiments with the difference that it is not a repetitioncopy of a packet that is attenuated, but the first packet after the endof a packet loss period.

Analogous to the previous embodiments the segment numbers for a sequenceof packets after the drop out period can be attenuated by decreasinglevels, i.e. the decrement values of a sequence of packets after thepacket loss period can be gradually decreased.

Additionally, the sample segment numbers of at least one packet afterthe packet loss period may be decremented by the same decrement valueand, the number of the packets decremented by the same decrement valuemay depend on the real-time duration of the payload data of a packet, asdescribed earlier for packet loss concealment.

In an operation 706 the sequence of packets including the attenuatedfirst packet after end of the packet loss period is forwarded to anothernetwork entity or receiver, as outlined before.

In an alternative operation 705 not only the first packet of thesequence of packets of the packet loss period can be attenuated, butalso a larger number of packets, such as the 1st-5th packet, with eachpacket containing a 20 or 40 ms payload of the original signal. In thiscase, the attenuation of the first packet will be largest, theattenuation selected for the second packet reduced and further slowlyreduced to 0 for the next number of packets. In a practical example thedecrement value for the first packet after the packet loss period willbe largest, the decrement value for the second packet and followingpackets slowly reduced until packets without any attenuation aretransmitted.

Accordingly, after a packet loss period, the signal can be slowly fadedin order to reduce the audible impact of a reappearing signal after apacket loss period.

The previously described embodiments for fading out the signal bytransmitting attenuated repetition copies of the last correctly receiveddata packet at the beginning of a packet loss period and the embodimentsfor transmitting attenuated packets after a packet loss period may becombined to achieve a slow fade-out of the signal upon the beginning ofa packet loss period, and for slowly fading in the signal again afterthe end of the packet loss period.

According to an example, the flow of operations following operation 607in FIG. 6, denoted by an exit point A, may continue with operation 704of FIG. 7, as indicated at the entry point A in FIG. 7.

According to an alternative to attenuating packets after a packet lossperiod to smoothly fade in the signal, it is also conceivable to performoperations 705 and 706 at the beginning of a signal stream, e.g. uponreceiving a first packet in a newly established communication or after asilence period in an ongoing communication, e.g. if a user did not speakfor a certain period of time.

In the following, a further embodiment of the invention will bedescribed with regard to FIG. 8. FIG. 8 illustrates operations forprocessing packets of encoded real-time data, particularly illustratingoperations to slowly fade in a signal after a packet loss period, suchas outlined with regard to FIG. 8.

In a first operation 801 it is determined whether a packet loss periodis over, and if in operation 801 the packet loss period is determinedover, in operation 802 the attenuation decrement value is set to aninitial value, specifying an initial decrement value for attenuating thefirst data packet after the packet loss period ends. According to anexample, the initial value for the attenuation may be a maximum possibledecrement value, to start the reappearing signal at for example lowpower.

In an operation 803 the first packet after the packet loss period isattenuated using the initial decrement value, by decrementing eachsegment number of each sample of the packet by the initial decrementvalue, as outlined before. Alternatively, as outlined before, also twoor more packets may be attenuated the same decrement value and, thenumber of the packets decremented by the same decrement value may dependon the real-time duration of the payload data of a packet, as describedearlier for packet loss concealment.

After attenuating all samples of the packet, the decrement value isreduced, so as to specify a lower decrement value or attenuation levelfor a next packet after the packet loss period.

In an operation 802 it is determined whether the decrement value isequal to 0. If in operation 805 the decision is “no”, the next packetafter the packet loss period is attenuated using the reduced decrementvalue of operation 804. This sequence of operations 803, 804 and 805 iscontinued until the decrement value is equal to 0. In operation 804 foreach iteration reduces the decrement value, preferably so as to achievea smooth fade-in of the signal, for example the decrement value may bereduced each iteration by one attenuation level until the decrementvalue is equal to 0.

If in operation 805 the decision is “yes”, normal transmissions arecontinued in an operation 806.

As the fade-in of the reappearing flow of packets is performed byattenuating the first packets of the reappearing stream by progressivelydecrease attenuation levels, quick fade-in is desired, as the attenuatedpackets do not contain repetition copies such as in the fade-outprocess, but payload data of the reappearing signal.

A program may be provided comprising instructions to carrying out themethod of any of the above embodiments. This program may be provided ona computer-readable medium to be loaded into a computing device andcausing the computing device to execute the operations of the aboveoutlined methods. Moreover, a computer program product may be providedcomprising the computer-readable medium.

The above embodiments may be realized by a general purpose processingdevice executing the operations as defined by the program, or by acombination of a general purpose processing device, dedicated hardware,or fully by a dedicated hardware device.

1-23. (canceled)
 24. A processing device for processing packets ofencoded real-time data, said processing device comprising: receivingmeans for receiving a sequence of packets of encoded real-time signalsamples from a sending entity, each sample having a segment number and adata value, the segment number specifying one of a plurality of adjacentsub ranges of a range of possible signal values, and the data valueindicating an element in the sub range specified by the segment number;and attenuating means for attenuating the samples of a packet bydecrementing the segment number of each sample of the packet by the samedecrement value to specify a lower sub range corresponding to lowerpossible signal values.
 25. The processing device according to claim 24,further comprising: repetition means for detecting a packet loss period,the packet loss period corresponding to at least one lost or improperlyreceived packet, and for introducing into the sequence of packets asequence of at least one repetition copy of the last correctly receivedpacket, if a packet loss period is detected; and wherein the packetattenuated by the attenuating means is a repetition copy.
 26. Theprocessing device according to claim 25, wherein the attenuating meansincludes means for progressively decrementing the segment numbers forthe sequence of repetition copies by increasing decrement values. 27.The processing device according to claim 25, wherein a segment numbercorresponds to a lowest sub range, and the attenuating means includesmeans for replacing the data value with zero.
 28. The processing deviceaccording to claim 25, wherein the attenuating means includes means fordecrementing sample segment numbers of at least one repetition copy bythe same decrement value.
 29. The processing device according to claim28, wherein the means for decrementing sample segment numbers of atleast one repetition copy by the same decrement value includes means fordetermining the number of repetition copies to decrement by the samedecrement value based on the real-time duration of the payload data of apacket.
 30. The processing device according to claim 25, wherein theattenuating means does not attenuate the first repetition copy.
 31. Theprocessing device according to claim 24, wherein the receiving meansincludes: means for detecting a first packet after a packet loss period,and wherein the packet attenuated by the attenuating means is the firstpacket after the packet loss period.
 32. The processing device accordingto claim 31, wherein the attenuating means includes means fordecrementing the segment numbers of the samples of packets subsequent tothe first packet after the packet loss period by a smaller decrementvalue compared to the first packet.
 33. The processing device accordingto claim 24, wherein the attenuating means includes a lookup table ofall possible sample values for each attenuation decrement value, whereinthe attenuating means attenuates the samples by looking up a samplevalue at a position corresponding to an original sample value in alookup table corresponding to a desired attenuation decrement value. 34.A method of processing packets of encoded real-time data, said methodcomprising the steps of: receiving a sequence of packets of encodedreal-time signal samples from a sending entity, each sample having asegment number and a data value, the segment number specifying one of aplurality of adjacent sub ranges of a range of possible signal values,and the data value indicating an element in the sub range specified bythe segment number; and attenuating the samples of a packet bydecrementing the segment number of each sample of the packet by the samedecrement value to specify a lower sub range corresponding to lowerpossible signal values.
 35. The method according to claim 34, furthercomprising the steps of: detecting a packet loss period, the packet lossperiod corresponding to at least one lost or improperly received packet;introducing into the sequence of packets, a sequence of at least onerepetition copy of the last correctly received packet, if a packet lossperiod is detected; and wherein the packet attenuated by the attenuatingmeans is a repetition copy.
 36. The method according to claim 35,wherein the attenuating step includes decrementing the segment numbersfor the sequence of repetition copies by increasing decrement values.37. The method according to claim 35, further comprising replacing thedata value by zero, if a segment number corresponds to a lowest subrange.
 38. The method according to claim 35, wherein the attenuatingstep includes decrementing sample segment numbers of at least onerepetition copy by the same decrement value.
 39. The method according toclaim 38, wherein the number of the repetition copies decremented by thesame decrement value depends on the real-time duration of the payloaddata of a packet.
 40. The method according to claim 35, wherein thefirst repetition copy is not attenuated.
 41. The method according toclaim 34, further comprising detecting a first packet after a packetloss period, and wherein the attenuating step includes attenuating thefirst packet after the packet loss period.
 42. The method according toclaim 41, wherein the attenuating step includes decrementing the segmentnumbers of the samples of packets subsequent to the first packet afterthe packet loss period by a smaller decrement value compared to thefirst packet.
 43. The method according to claim 34, further comprising:storing a lookup table of all possible sample values for eachattenuation decrement value; and wherein the attenuating step includesattenuating the samples by looking up a sample value at a positioncorresponding to an original sample value in a lookup tablecorresponding to a desired attenuation decrement value.